/** 
 * @file spectral.h
 * @brief Head file for using spectral method to solve Boussinesq equation.
 * @author Lin Lin
 * @date 2007-01-04
 */
#ifndef __SPECTRAL_H
#define __SPECTRAL_H

//C++ standard includes
#include	<iostream>
#include	<fstream>
#include	<sstream>
#include	<cstring>
#include	<new>
#include	<cassert>
#include	<complex>
#include	<cmath>
//STL includes
#include	<utility>
#include	<vector>
#include	<algorithm>
//MPI includes, may need special include location.
#include	<mpi.h>
//FFTW includes, may need special include location.
#include	<fftw3.h>
//Controller
#include	"Controller.h"
//Matrix Defination
#include	"Matrix.hpp"
using namespace std;				

typedef unsigned int UINT;			/**< For simplicity and transplantform reason*/



/**
 * @defgroup GlobVar global
 *
 */

/**
 * @ingroup GlobVar
 * @defgroup sub1 Dimensions and arrays.
 */
/** \@{ */
const UINT DIM = 2;             /**< Dimension of the zone*/
UINT n[DIM];	 		        /**< the grid size of the zone*/
UINT local_n[DIM];				/**< grid size in a local proc*/
UINT N[DIM]; 					/**< grid size after 3/2 law*/
UINT local_N[DIM];				/**< grid size after 3/2 law in a local proc*/;
/** \@} */

/**
 * @ingroup GlobVar
 * @defgroup sub2 Dimensions and arrays2.
 */
/** \@{ */
const UINT aDIM = 2;             /**< Dimension of the zone*/
/** \@} */
